Implementing aspect-oriented programming constructs as modular language extensions

نویسنده

  • Eric Van Wyk
چکیده

Extensible programming languages and their compilers are experimental systems that use highly modular specifications of languages and language extensions in order to allow a variety of language features to be easily imported, by the programmer, into his or her programming environment. Our framework for extensible languages is based on higher-order attribute grammars extended with a mechanism called “forwarding” that mimics a simple rewriting process. Forwarding is designed such that no additional attribute definitions need to be written when combining a “host” language with language extensions (specified as attribute grammars) thus allowing for the modular composition of language features. This means that programmers can remain unaware of the underlying attribute grammars when building customized languages by importing language extensions. This paper shows how aspects and the aspect weaving process from Aspect-Oriented Programming can be specified as a modular language extension and imported into an extensible host language. This paper also illustrates how an extensible compiler framework exposes its underlying semantic analyses and how this can provide a convenient arena for researchers to explore new aspect-oriented language features.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Aspect-Oriented Workflow Languages

Most available aspect-oriented languages today are extensions to programming languages. However, aspect-orientation, which is a paradigm for decomposition and modularization, is not only applicable in that context. In this paper, we introduce aspect-oriented software development concepts to workflow languages in order to improve the modularity of workflow process specifications with respect to ...

متن کامل

Modular Program Transformations for Aspect-Oriented Constructs

This work describes a language design experiment in the context of aspect-oriented programming. The core idea was to develop a transformation from high-level language as expressive as AspectJ to a low-level language model, one construct at a time. The key requirement was for these transformations to be modular. The lowlevel language used was a simple aspect language model, named Nu that is base...

متن کامل

The JastAdd system - modular extensible compiler construction

The JastAdd system enables modular specifications of extensible compiler tools and languages. Java has been extended with the Rewritable Circular Reference Attributed Grammars formalism that supports modularization and extensibility through several synergistic mechanisms. Object-orientation and static aspect-oriented programming are combined with declarative attributes and context-dependent rew...

متن کامل

Aspects as Modular Language Extensions

Extensible programming languages and their compilers use highly modular specifications of languages and language extensions that allow a variety of different language feature sets to be easily imported into the programming environment by the programmer. Our model of extensible languages is based on higher-order attribute grammars and an extension called “forwarding” that mimics a simple rewriti...

متن کامل

Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming

This paper makes two contributions to a formal understanding of aspect-oriented programming. First, we define TinyAspect, a formal model capturing core AOP concepts. Compared to previous formalizations of AOP constructs, TinyAspectis extremely small, models aspects at the source level, and is defined using structured operational semantics and syntax-directed typing rules. In combination, these ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Sci. Comput. Program.

دوره 68  شماره 

صفحات  -

تاریخ انتشار 2007